{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Language Models and Ecco -- PyData Khobar.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "authorship_tag": "ABX9TyMRaCJN2OAvURa/1BtrEVVo",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/jalammar/ecco/blob/main/notebooks/Language_Models_and_Ecco_PyData_Khobar.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tUdlUusx7U-n"
      },
      "source": [
        "## Intro to Ecco -- Making Language Models More Transparent\r\n",
        "This notebook is an intro to [Ecco](https://www.eccox.io) and is the companion to the video: [Take A Look Inside Language Models With Ecco | PyData Khobar](https://www.youtube.com/watch?v=rHrItfNeuh0). \r\n",
        " "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Ii6Crs6VpXBM"
      },
      "source": [
        "# Install Ecco. This assumes you have pytorch installed.\r\n",
        "!pip install ecco\r\n",
        "import warnings\r\n",
        "warnings.filterwarnings('ignore')"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S1tPxd2fpdYo"
      },
      "source": [
        "import ecco\n",
        "\n",
        "# Load pre-trained language model. Setting 'activations' to True tells Ecco to capture neuron activations.\n",
        "# distillgpt is a distilled GPT2 model. You can also try 'gpt2' \n",
        "lm = ecco.from_pretrained('distilgpt2', activations=True)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "t91NoD-AwQFA"
      },
      "source": [
        "## Overview\n",
        "\n",
        "Complete the sentence:\n",
        "`It was a matter of ____`"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49
        },
        "id": "Ixn-FHcdYL_M",
        "outputId": "21f706c7-2229-4c4d-c616-5c75a3e269c9"
      },
      "source": [
        "text = \" it was a matter of\"\r\n",
        "\r\n",
        "# Generate one token\r\n",
        "output_1 = lm.generate(text, generate=1, do_sample=False)"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "\n",
              "         requirejs( ['basic', 'ecco'], function(basic, ecco){\n",
              "            basic.init('viz_742630')\n",
              "\n",
              "            window.ecco['viz_742630'] = ecco.renderOutputSequence('viz_742630', {'tokens': [{'token': ' it', 'position': 0, 'token_id': 340, 'type': 'input'}, {'token': ' was', 'position': 1, 'token_id': 373, 'type': 'input'}, {'token': ' a', 'position': 2, 'token_id': 257, 'type': 'input'}, {'token': ' matter', 'position': 3, 'token_id': 2300, 'type': 'input'}, {'token': ' of', 'position': 4, 'token_id': 286, 'type': 'input'}]})\n",
              "         }, function (err) {\n",
              "            console.log(err);\n",
              "        })\n"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_742630');\n",
              "                window.ecco['viz_742630'].addToken({\"token\": \" time\", \"token_id\": 640, \"position\": 5, \"type\": \"output\"})\n",
              "                window.ecco['viz_742630'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 187
        },
        "id": "JzA265wyYL4K",
        "outputId": "54f3826b-3e9c-438e-db7c-9a635c1cc4f6"
      },
      "source": [
        "# Show the top 10 candidate output tokens for position #5. \r\n",
        "# Layer 5 is the last layer in the model.\r\n",
        "output_1.layer_predictions(position=5, layer=5, topk=10)"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Predictions for position 5\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "         requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "            const viz_id = basic.init()\n",
              "\n",
              "\n",
              "            let pred = new ecco.LayerPredictions({\n",
              "                parentDiv: viz_id,\n",
              "                data:[[{\"token\": \" time\", \"prob\": \"0.1609947\", \"ranking\": 1, \"layer\": 5}, {\"token\": \" the\", \"prob\": \"0.023776313\", \"ranking\": 2, \"layer\": 5}, {\"token\": \" fact\", \"prob\": \"0.016822413\", \"ranking\": 3, \"layer\": 5}, {\"token\": \" a\", \"prob\": \"0.015250747\", \"ranking\": 4, \"layer\": 5}, {\"token\": \" course\", \"prob\": \"0.011499535\", \"ranking\": 5, \"layer\": 5}, {\"token\": \" faith\", \"prob\": \"0.009632221\", \"ranking\": 6, \"layer\": 5}, {\"token\": \" principle\", \"prob\": \"0.009305256\", \"ranking\": 7, \"layer\": 5}, {\"token\": \" personal\", \"prob\": \"0.009230307\", \"ranking\": 8, \"layer\": 5}, {\"token\": \" great\", \"prob\": \"0.008408523\", \"ranking\": 9, \"layer\": 5}, {\"token\": \" public\", \"prob\": \"0.00818359\", \"ranking\": 10, \"layer\": 5}]]\n",
              "            })\n",
              "            pred.init()\n",
              "         }, function (err) {\n",
              "            console.log(viz_id, err);\n",
              "        })"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "z1dCPYSL9zUu"
      },
      "source": [
        "This view shows the top 10 candidate tokens, their probability, and their rankings.\r\n",
        "\r\n",
        "### Comparing two token candidates for a single position"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PSQpCZb9YLlw",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e6c12993-6630-4f1e-c921-8ab93a5c7961"
      },
      "source": [
        "# What are the token IDs of the two words?\n",
        "lm.tokenizer(\" principle principal\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'input_ids': [7989, 10033], 'attention_mask': [1, 1]}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 61
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 378
        },
        "id": "RdC5MO1yvTvC",
        "outputId": "86193189-42d6-4d77-a28e-e8f665c2c83e"
      },
      "source": [
        "# Compare the rankings of \"Principle\" and \"Principal\" across layers\n",
        "output_1.rankings_watch(watch=[7989, 10033], position=5)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 201.6x244.8 with 3 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "T96DI4wF73fk"
      },
      "source": [
        "## Exploring World Knowledge And Layer Analysis\n",
        "Does the model \"know\" where Heathrow airport is located? To probe the model, we let's try the input sentence: \n",
        "\n",
        "`Heathrow airport is located in ____`"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e2V8ARTEsF6B",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49
        },
        "outputId": "d5ac06ef-8157-4b89-debe-6d3400b5f848"
      },
      "source": [
        "text = \" Heathrow airport is located in\"\n",
        "output_2 = lm.generate(text, generate=5, do_sample=False)"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "\n",
              "         requirejs( ['basic', 'ecco'], function(basic, ecco){\n",
              "            basic.init('viz_936303')\n",
              "\n",
              "            window.ecco['viz_936303'] = ecco.renderOutputSequence('viz_936303', {'tokens': [{'token': ' Heath', 'position': 0, 'token_id': 25846, 'type': 'input'}, {'token': 'row', 'position': 1, 'token_id': 808, 'type': 'input'}, {'token': ' airport', 'position': 2, 'token_id': 9003, 'type': 'input'}, {'token': ' is', 'position': 3, 'token_id': 318, 'type': 'input'}, {'token': ' located', 'position': 4, 'token_id': 5140, 'type': 'input'}, {'token': ' in', 'position': 5, 'token_id': 287, 'type': 'input'}]})\n",
              "         }, function (err) {\n",
              "            console.log(err);\n",
              "        })\n"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_936303');\n",
              "                window.ecco['viz_936303'].addToken({\"token\": \" the\", \"token_id\": 262, \"position\": 6, \"type\": \"output\"})\n",
              "                window.ecco['viz_936303'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_936303');\n",
              "                window.ecco['viz_936303'].addToken({\"token\": \" heart\", \"token_id\": 2612, \"position\": 7, \"type\": \"output\"})\n",
              "                window.ecco['viz_936303'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_936303');\n",
              "                window.ecco['viz_936303'].addToken({\"token\": \" of\", \"token_id\": 286, \"position\": 8, \"type\": \"output\"})\n",
              "                window.ecco['viz_936303'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_936303');\n",
              "                window.ecco['viz_936303'].addToken({\"token\": \" the\", \"token_id\": 262, \"position\": 9, \"type\": \"output\"})\n",
              "                window.ecco['viz_936303'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_936303');\n",
              "                window.ecco['viz_936303'].addToken({\"token\": \" city\", \"token_id\": 1748, \"position\": 10, \"type\": \"output\"})\n",
              "                window.ecco['viz_936303'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Qgy6fqtB_tBJ"
      },
      "source": [
        "While the output is not incorrect, it doesn't really anwer the question we are after. Let's slightly change the input sentence:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 49
        },
        "id": "2E-8avmf8OWc",
        "outputId": "df611a7f-5ad4-4f8e-8bcf-8df553245d5a"
      },
      "source": [
        "text = \" Heathrow airport is located in the city of\"\n",
        "output_2 = lm.generate(text, generate=1, do_sample=False)"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "\n",
              "         requirejs( ['basic', 'ecco'], function(basic, ecco){\n",
              "            basic.init('viz_878900')\n",
              "\n",
              "            window.ecco['viz_878900'] = ecco.renderOutputSequence('viz_878900', {'tokens': [{'token': ' Heath', 'position': 0, 'token_id': 25846, 'type': 'input'}, {'token': 'row', 'position': 1, 'token_id': 808, 'type': 'input'}, {'token': ' airport', 'position': 2, 'token_id': 9003, 'type': 'input'}, {'token': ' is', 'position': 3, 'token_id': 318, 'type': 'input'}, {'token': ' located', 'position': 4, 'token_id': 5140, 'type': 'input'}, {'token': ' in', 'position': 5, 'token_id': 287, 'type': 'input'}, {'token': ' the', 'position': 6, 'token_id': 262, 'type': 'input'}, {'token': ' city', 'position': 7, 'token_id': 1748, 'type': 'input'}, {'token': ' of', 'position': 8, 'token_id': 286, 'type': 'input'}]})\n",
              "         }, function (err) {\n",
              "            console.log(err);\n",
              "        })\n"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_878900');\n",
              "                window.ecco['viz_878900'].addToken({\"token\": \" London\", \"token_id\": 3576, \"position\": 9, \"type\": \"output\"})\n",
              "                window.ecco['viz_878900'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 265
        },
        "id": "Ws7tKJ_K8Wcg",
        "outputId": "f045a616-d379-4eff-ab35-818b5bc7fd57"
      },
      "source": [
        "# What other tokens were possible to output in place of \"London\"?\n",
        "output_2.layer_predictions(position=9, layer=5, topk=30)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Predictions for position 9\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "         requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "            const viz_id = basic.init()\n",
              "\n",
              "\n",
              "            let pred = new ecco.LayerPredictions({\n",
              "                parentDiv: viz_id,\n",
              "                data:[[{\"token\": \" London\", \"prob\": \"0.13281083\", \"ranking\": 1, \"layer\": 5}, {\"token\": \" Birmingham\", \"prob\": \"0.06064123\", \"ranking\": 2, \"layer\": 5}, {\"token\": \" Manchester\", \"prob\": \"0.036828216\", \"ranking\": 3, \"layer\": 5}, {\"token\": \" Glasgow\", \"prob\": \"0.0156107135\", \"ranking\": 4, \"layer\": 5}, {\"token\": \" Edinburgh\", \"prob\": \"0.012735456\", \"ranking\": 5, \"layer\": 5}, {\"token\": \" Liverpool\", \"prob\": \"0.011518745\", \"ranking\": 6, \"layer\": 5}, {\"token\": \" Bristol\", \"prob\": \"0.011411636\", \"ranking\": 7, \"layer\": 5}, {\"token\": \" Leeds\", \"prob\": \"0.011315532\", \"ranking\": 8, \"layer\": 5}, {\"token\": \" Belfast\", \"prob\": \"0.011035166\", \"ranking\": 9, \"layer\": 5}, {\"token\": \" Brighton\", \"prob\": \"0.010986359\", \"ranking\": 10, \"layer\": 5}, {\"token\": \" Sheffield\", \"prob\": \"0.009908097\", \"ranking\": 11, \"layer\": 5}, {\"token\": \" Dublin\", \"prob\": \"0.009576625\", \"ranking\": 12, \"layer\": 5}, {\"token\": \" Cov\", \"prob\": \"0.009328982\", \"ranking\": 13, \"layer\": 5}, {\"token\": \" D\", \"prob\": \"0.00873773\", \"ranking\": 14, \"layer\": 5}, {\"token\": \" Dund\", \"prob\": \"0.008347085\", \"ranking\": 15, \"layer\": 5}, {\"token\": \" St\", \"prob\": \"0.008127824\", \"ranking\": 16, \"layer\": 5}, {\"token\": \" Cambridge\", \"prob\": \"0.0077230306\", \"ranking\": 17, \"layer\": 5}, {\"token\": \" Toronto\", \"prob\": \"0.00713806\", \"ranking\": 18, \"layer\": 5}, {\"token\": \" Chelsea\", \"prob\": \"0.006981064\", \"ranking\": 19, \"layer\": 5}, {\"token\": \" W\", \"prob\": \"0.006370264\", \"ranking\": 20, \"layer\": 5}, {\"token\": \" Newcastle\", \"prob\": \"0.0063533247\", \"ranking\": 21, \"layer\": 5}, {\"token\": \" Nottingham\", \"prob\": \"0.00617757\", \"ranking\": 22, \"layer\": 5}, {\"token\": \" G\", \"prob\": \"0.005884209\", \"ranking\": 23, \"layer\": 5}, {\"token\": \" T\", \"prob\": \"0.005857759\", \"ranking\": 24, \"layer\": 5}, {\"token\": \" Westminster\", \"prob\": \"0.0056814784\", \"ranking\": 25, \"layer\": 5}, {\"token\": \" B\", \"prob\": \"0.0056101703\", \"ranking\": 26, \"layer\": 5}, {\"token\": \" Surrey\", \"prob\": \"0.0055002114\", \"ranking\": 27, \"layer\": 5}, {\"token\": \" C\", \"prob\": \"0.0052068\", \"ranking\": 28, \"layer\": 5}, {\"token\": \" New\", \"prob\": \"0.004981762\", \"ranking\": 29, \"layer\": 5}, {\"token\": \" L\", \"prob\": \"0.0048823133\", \"ranking\": 30, \"layer\": 5}]]\n",
              "            })\n",
              "            pred.init()\n",
              "         }, function (err) {\n",
              "            console.log(viz_id, err);\n",
              "        })"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 326
        },
        "id": "HrkMe1rI8kCF",
        "outputId": "60d9d4f8-7aef-4fa7-edee-d42aa5994db9"
      },
      "source": [
        "# Now that the model has selcted the tokens \"London . \\n\"\n",
        "# How did each layer rank these tokens during processing?\n",
        "output_2.rankings()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 136.8x244.8 with 3 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1Qelsn_jZlIE"
      },
      "source": [
        "This visualization is based on the great visual treatment by nostalgebraist in [Interpreting GPT: the logit lens](https://www.lesswrong.com/posts/AcKRB8wDpdaN6v6ru/interpreting-gpt-the-logit-lens)."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "UcD1w1HP9hWO"
      },
      "source": [
        "### Probing the model's world knowledge \n",
        "\n",
        "What happens if we present the following input sentence to the model:\n",
        "\n",
        "`The countries of the European Union are:\\n1. Austria\\n2. Belgium\\n3. Bulgaria\\n4. ___________`\n",
        "\n",
        "Namely, we have these questions:\n",
        "* Q. Will the model continue the numbering correctly?\n",
        "* Q. Will it succeed in following the formatting?\n",
        "* Q. Will it succeed in naming countries? European ones?\n",
        "* Q. Will the model \"notice\" the alphabetical order of the list? Will it follow it?\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 302
        },
        "id": "X72IPVlJ8_8r",
        "outputId": "dba57cae-c14a-4270-bcbe-1fa06bda06a9"
      },
      "source": [
        "text= \"The countries of the European Union are:\\n1. Austria\\n2. Belgium\\n3. Bulgaria\\n4.\"\n",
        "\n",
        "output_3 = lm.generate(text, generate=20, do_sample=True)"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "\n",
              "         requirejs( ['basic', 'ecco'], function(basic, ecco){\n",
              "            basic.init('viz_297367')\n",
              "\n",
              "            window.ecco['viz_297367'] = ecco.renderOutputSequence('viz_297367', {'tokens': [{'token': 'The', 'position': 0, 'token_id': 464, 'type': 'input'}, {'token': ' countries', 'position': 1, 'token_id': 2678, 'type': 'input'}, {'token': ' of', 'position': 2, 'token_id': 286, 'type': 'input'}, {'token': ' the', 'position': 3, 'token_id': 262, 'type': 'input'}, {'token': ' European', 'position': 4, 'token_id': 3427, 'type': 'input'}, {'token': ' Union', 'position': 5, 'token_id': 4479, 'type': 'input'}, {'token': ' are', 'position': 6, 'token_id': 389, 'type': 'input'}, {'token': ':', 'position': 7, 'token_id': 25, 'type': 'input'}, {'token': '\\n', 'position': 8, 'token_id': 198, 'type': 'input'}, {'token': '1', 'position': 9, 'token_id': 16, 'type': 'input'}, {'token': '.', 'position': 10, 'token_id': 13, 'type': 'input'}, {'token': ' Austria', 'position': 11, 'token_id': 17322, 'type': 'input'}, {'token': '\\n', 'position': 12, 'token_id': 198, 'type': 'input'}, {'token': '2', 'position': 13, 'token_id': 17, 'type': 'input'}, {'token': '.', 'position': 14, 'token_id': 13, 'type': 'input'}, {'token': ' Belgium', 'position': 15, 'token_id': 15664, 'type': 'input'}, {'token': '\\n', 'position': 16, 'token_id': 198, 'type': 'input'}, {'token': '3', 'position': 17, 'token_id': 18, 'type': 'input'}, {'token': '.', 'position': 18, 'token_id': 13, 'type': 'input'}, {'token': ' Bulgaria', 'position': 19, 'token_id': 27902, 'type': 'input'}, {'token': '\\n', 'position': 20, 'token_id': 198, 'type': 'input'}, {'token': '4', 'position': 21, 'token_id': 19, 'type': 'input'}, {'token': '.', 'position': 22, 'token_id': 13, 'type': 'input'}]})\n",
              "         }, function (err) {\n",
              "            console.log(err);\n",
              "        })\n"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Canada\", \"token_id\": 3340, \"position\": 23, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"\\n\", \"token_id\": 198, \"position\": 24, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"5\", \"token_id\": 20, \"position\": 25, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \".\", \"token_id\": 13, \"position\": 26, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Czech\", \"token_id\": 16639, \"position\": 27, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Republic\", \"token_id\": 2066, \"position\": 28, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"\\n\", \"token_id\": 198, \"position\": 29, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"6\", \"token_id\": 21, \"position\": 30, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \".\", \"token_id\": 13, \"position\": 31, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Croatia\", \"token_id\": 28975, \"position\": 32, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"\\n\", \"token_id\": 198, \"position\": 33, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"7\", \"token_id\": 22, \"position\": 34, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \".\", \"token_id\": 13, \"position\": 35, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Czech\", \"token_id\": 16639, \"position\": 36, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Republic\", \"token_id\": 2066, \"position\": 37, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"\\n\", \"token_id\": 198, \"position\": 38, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"8\", \"token_id\": 23, \"position\": 39, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \".\", \"token_id\": 13, \"position\": 40, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \" Denmark\", \"token_id\": 16490, \"position\": 41, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "        // We don't really need these require scripts. But this is to avert\n",
              "        //this code from running before display_input_sequence which DOES require external files\n",
              "        requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                console.log('addToken viz_id', 'viz_297367');\n",
              "                window.ecco['viz_297367'].addToken({\"token\": \"\\n\", \"token_id\": 198, \"position\": 42, \"type\": \"output\"})\n",
              "                window.ecco['viz_297367'].redraw()\n",
              "        })\n",
              "        "
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "r-ikx4AVBvLK"
      },
      "source": [
        "The `rankings()` visualization view shows us at which layers the model resolved the output token for each position."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 343
        },
        "id": "bI2OpemBE5cG",
        "outputId": "41f92b2c-00bb-4b59-8f55-4583ea8f9b39"
      },
      "source": [
        "output_3.rankings()"
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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ZIqMjAzcvXsXs2fPxvDhw+Ho6GjuH0lEREREREREVCLMPvdkwmPef/99JCQkIDk5GVWqVMG0adMwadIk9O3bFytXrkS1atWwfv16s2WMiYnBhQsXYGdnV6Tnm33yae7cuZg1axb8/f3xxRdfmPvHERERERERERGVHMG8k09Azml3ixcvRrdu3dCtW7c8+9euXZvv8+Li4swb7P95e3sjOztbupNPRT1ljoiIiIiIiIhIdAIAc16QW0CRTruzJEdHRzRq1AhBQUG5JqAWLVpk0vPNPvlERERERERERGStLLDkk+R1794d3bt3L/LzOflERERERERERFQQQTD7xcxeddqd2AYPHlys53PyiYiIiIiIiIjoZcx8dJLUT7u7dOkSJk+ejHPnzuHZs2fG7YmJiSY9X2muYERERERERERE1k4QAMFgvpu5J7ZKwtChQzFy5Eio1Wrs3bsXgwYNwoABA0x+PiefiIiIiIiIiIheRjDjDTmn3YWGhmLr1q2WqqhQMjMzERQUBEEQUK1aNYSFheE///mPyc9XCOY+cdGKNG7cGAkJCWLHICIiIiIiIrJ6QUFBOHbsmNgximXv3r3YNGoOZjbpZ7afMfLQSkyOXYL69eub7WcUV6tWrXDgwAH07t0b7dq1Q+XKlTFp0iRcuHDBpOdzzacXKG6mwnZCrNgxikw7twcAYL3mG5GTFF3flM8AWHcNQE4dcqgh8/0NYscoFoe1fQBY9+8Te0I65FIDACjHbhY5SdEZInoCYE9IgVxqAKz790kONQDy+X2SQw2Adf8+Pa8hrfs6kZMUj+uWflb9PgD/ey/korQfthMREYGMjAwsWrQIX3zxBeLj4/Hjjz+a/HxOPhERERERERERFUQAYDDz60tcs2bNAADOzs6IjIyEXq/HL7/8gubNm5v0fK75RERERERERERUAEEw7w2Q7ppPaWlpCA8Px0cffYTdu3dDEAR8++23qFmzJtavX2/y6/DIJyIiIiIiIiKiAgkw53LZgiAgICAAH3/8sdl+RlENHDgQGo0GLVu2xIoVKzB79mwIgoDNmzejUaNGJr8OJ5+IiIiIiIiIiArywlXpSpvExET89ddfAICQkBBUrFgR169fh729faFeh5NPREREREREREQFEAAIpXTNJxsbG+OfVSoVqlSpUuiJJ4CTT0RERERERERElI9Tp07B1dUV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LR4npsWLmKpwWIM0CALg2KUuXD9qDSgV0N9/iic/HEbWketiRysUObwXrEE65FKHTeua0B2/DjzTiR2lSOTyPsihDtYgDXKoAZBHHaxBGlQeznDuUQ9Clg6VNg00bk+Z/zsyfrOetQ7l8F5YnGDeq92Vhgkokyaf0tLScPLkyVzb3N3d4ePjA4PBgIULF6JXr144fPgwFi5cmOf57u7u6NOnD8aPH482bdrAx8fHuK9///6YN28eevTogenTp+O1117DjRs3EBsbiw8//DDXY19l69atuHv3Llq2bAkHBwfs3bsXX375JUJDQ2FnZ2fy65Q03a/Hofv1+KsfKGEnZPCXEWuQBiHtGR5N/I/YMYpNDu8Fa5AOudSRtfqQ2BGKRS7vgxzqYA3SIIcaAHnUwRqkQX/vKW60XSZ2jGKTw3shilIwQWROJh1b9/vvv6Nx48a5bp9++ikaNGiAiIgILFiwAPXq1cOKFSswb968fF8jODgYWq0WwcHBubY7Ojpi//798Pb2Rp8+fVCnTh0MHjwYKSkp0Gg0hSrGxsYG33//PVq2bGnMNn36dMyfP79Qr0NEREREREREBDxfcFww403sCs3vlUc+RUVFGddrys+YMWMwZsyYXNueX6HuRXfu3IGbmxt69+6dZ5+HhwciIyML/BlhYWEICwt7VVR07NgRHTt2fOXjiIiIiIiIiIheRaVS4cazZGQb9FArVCX++lmGbNzOemRcykiuin21u1fJyMjA3bt3MXv2bAwfPhyOjo7m/pFERERERERERMXWqlUrqJKd8fb+cAxCF3goypbYa98Q7mINtqMZXsfly5excOFCdOvWDd26dSuxnyEVZp98mjt3LmbNmgV/f3988cUX5v5xREREREREREQlQq1WY6uwH1MUw7ACsWgp1EcA/KBUKIr8mnrBgJ04iDO4gu3n4lC3bl0AQPfu3UsqtuSY/XqKYWFhyM7Oxt69e+Hq6mruH0dEREREREREVKJmCavwd2YiHuIxIrAWD4XHRXqdu8JDzMdPECDgvDbROPEkd2affCIiIiIiIiIisnb29vbYLRxGF/jje2zAQeEUBBNXCzcIAuKEP7AKseiHDogV9sHGxsbMiaWDk09ERERERERERCb6RvgR555cRiJu4XtswGPh6UsfnyykYiGikYInOJ+ZiJnCSgsllQ5OPhERERERERER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CcLDw8WORSR5HDGIiEpQfotRcqFJIiKSG453VBpduXIF7dq1g62tLeLi4lC9enUIgoApU6agUqVKGDx4sNgRiSSLp90REZUglUqVZzFKLjRJRERyw/GOSpurV6+iTZs20Ov12LdvH2rWrGnc9/HHH+OHH37A1q1b8fbbb4uYkki6eOQTEVEJioyMFDsCERGR2XG8o9KmXbt2yM7ORkJCQq6JJwBYvHgx7t69iz59+iAtLU2khETSxiOfiIiIiIiIiF7C09MT8fHxqFevXr77tVotOnTogH379lk4GZF14OQTERERERER0UucOXMGvr6+L33M48eP4ebmZqFERNaFk09ERERERERERGQ2XPOJiIiIiIiIqBiGDh2a674gCIiKihInDJEEcfKJiIiIiIiIqBj279+f6wqQPMGIKDeedkdERERERERERGajFDsAERERERERERHJFyefiIiIiIiIiIjIbDj5REREREREREREZsPJJyIiIiIAQ4YMQdeuXcWOQURERCQ7nHwiIiIqxW7duoXQ0FBUqVIFtra2qFy5MoYPH46bN28W+rUCAgLw0UcfmSElEBUVBWdn55c+ZsiQIVAoFC+9EREREZHlcfKJiIiolEpKSoKfnx/OnDmD1atX4/Lly/jpp59w9uxZNGvWDFevXhU7YqFERETgzp07xpujoyMWLlyYaxsRERERWR4nn4iIiEqp0aNHQ6lU4rfffkNQUBBee+01BAYG4rfffoNSqcTo0aONj83vqKYXT1MbMmQI9u3bh++++854lNHVq1eRkJAAhUKBbdu2oVGjRrC3t0fTpk1x/Phx4+vkd1TT8+clJycjISEBQ4cORXp6uvG1w8LC8tTj5uYGT09P402hUOTa9uDBA7Rv3x4ODg4oU6YMhgwZgsePHxf4/+fUqVOoWLEipkyZAgB4/PgxQkNDUaFCBbi4uKBt27Y4duxYnjri4uLg6+sLJycnBAYGIikpyfQ3hYiIiEiGOPlERET/1979hTS9/3Ecf23EpKkJtllIQdpAZtiFF8YUIocxokhmFLRIaBRJ3dUQuoguLPpzVTC98EIvpN1FUKMVw5IEDVMyrIVoFJkXoWQYG85s33MR53t++ykcO5ydzu/n8wFf+H73+ez9/Xzvxov39zOsQZ8/f9bDhw919uxZ2e32rDG73a4zZ84oFotpbm5uVfVu3bolj8ejEydOmF1GW7duNcdDoZCuX7+u4eFhlZeX68CBA0qlUquqXVtbq5s3b8put5u1Q6HQ6h9WUjKZlM/nU0FBgYaGhnT37l0NDAwoGAyuOL+/v1979uxRa2urrly5IsMwtH//fk1PTysajerFixfavXu3vF5vVkdVOp3W1atX1dXVpcHBQX358kUtLS0/tVYAAID/N+t+9QIAAMA/b2JiQoZhyO12rzheWVkpwzA0MTGhmpqaP61XVFQkm80mu92uzZs3Lxu/ePGifD6fJKm7u1tbtmxRJBLRyZMn/7S2zWZTUVGRLBbLirVXIxKJKJlMqqenR4WFhZKkzs5O1dfXa3JyUi6Xy5wbjUYVCAQUDofV3NwsSXry5IlGR0c1MzOj9evXS5La2tp0//599fT0qLW1VZK0tLSk9vZ2VVRUSPoRugWDQRmGwZ5TAABgzSJ8AgAAOefxeMzzgoICVVVVKZFI/GP3f/PmjXbu3GkGT9KPjiqr1apEImGGTyMjI/L7/YpEIjp8+LA5d2RkRKlUSk6nM6vuwsKC3r59a17n5eWZwZMklZaWanFxUXNzcyouLs7V4wEAAPyrET4BALAGuVwuWSwWJRIJ+f3+ZeOJREIWi8UMZaxWqwzDyJrz7du3v2Utuay9Gv/ZkVRWVqaSkhJ1d3fr4MGDysvLkyRlMhlt2rRJ/f39y76/YcMG83zduuyfVr/XzmQyuVg6AADA/wT2fAIAYA3auHGjfD6fOjo6lu29lEql1N7ern379pndOk6nc9m/xb18+TLr2maz6fv37yve79mzZ+Z5MpnUq1evzFf+nE6nUqmU5ufnzTmjo6Orrr0abrdbY2Nj+vr1q/nZwMCAMplM1quHxcXF6u3t1fT0tPx+v9LptCSpurpanz59ktVqlcvlyjpKSkr+8roAAADWAsInAADWqHA4rKWlJTU0NOjx48eamppSX1+f9u7dK8MwFA6Hzbler1exWEz37t3T+Pi4zp07p6mpqax627Zt09DQkN6/f6/Z2dmsbp/Lly8rHo/r9evXCgaDstlsCgQCkqRdu3YpPz9fFy5c0OTkpO7cuaOOjo5ltRcWFhSPxzU7O7vqzcp/d+zYMdntdjU3N2tsbExPnz7V6dOn1dTUlLXfkyQ5HA719vbq48ePampqUjqdVkNDg+rq6tTY2KhYLKZ3795pcHBQly5dWrEbCgAAAH8gfAIAYI3avn27hoeHtWPHDh0/flzl5eUKBAJyu916/vy5ysrKzLnBYNA86urqVFhYuOx1vVAoJJvNpsrKSjmdTn348MEcu3btms6fP6/q6mpNTEwoGo0qPz9f0o9uo9u3bysej6uqqkqdnZ1qa2vLql1bW6uWlhYdPXpUTqdTN27c+KlntdvtevTokebn51VTU6PGxkZ5PB51dXWtON/hcJiB3KFDh7S4uKgHDx7I6/Xq1KlTqqio0JEjRzQ+Pq7S0tKfWgsAAMBaYzH+e5MFAACAv0lfX5/q6+s1MzMjh8Pxq5cDAACAX4DOJwAAAAAAAOQM4RMAAAAAAAByhtfuAAAAAAAAkDN0PgEAAAAAACBnCJ8AAAAAAACQM4RPAAAAAAAAyBnCJwAAAAAAAOQM4RMAAAAAAAByhvAJAAAAAAAAOfMbYTHFQ4JHi5oAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 1368x244.8 with 3 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XJ-5kli5CGyf"
      },
      "source": [
        "The `saliency()` visualization shows which tokens contributed the most towards generating each output token (using the gradient X Input method):"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 237
        },
        "id": "D-nKpXW5FPlY",
        "outputId": "a476e098-5e50-4f51-9362-990ebb52ade9"
      },
      "source": [
        "output_3.saliency()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "             requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                const viz_id = basic.init()\n",
              "                // ecco.interactiveTokens(viz_id, {})\n",
              "                window.ecco[viz_id] = new ecco.MinimalHighlighter({\n",
              "                parentDiv: viz_id,\n",
              "                data: {'tokens': [{'token': 'The', 'token_id': 464, 'type': 'input', 'value': '0.049845695', 'position': 0}, {'token': ' countries', 'token_id': 2678, 'type': 'input', 'value': '0.050903756', 'position': 1}, {'token': ' of', 'token_id': 286, 'type': 'input', 'value': '0.013019185', 'position': 2}, {'token': ' the', 'token_id': 262, 'type': 'input', 'value': '0.011890959', 'position': 3}, {'token': ' European', 'token_id': 3427, 'type': 'input', 'value': '0.048978824', 'position': 4}, {'token': ' Union', 'token_id': 4479, 'type': 'input', 'value': '0.027450431', 'position': 5}, {'token': ' are', 'token_id': 389, 'type': 'input', 'value': '0.015803536', 'position': 6}, {'token': ':', 'token_id': 25, 'type': 'input', 'value': '0.020174112', 'position': 7}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.026422866', 'position': 8}, {'token': '1', 'token_id': 16, 'type': 'input', 'value': '0.03569955', 'position': 9}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.0265311', 'position': 10}, {'token': ' Austria', 'token_id': 17322, 'type': 'input', 'value': '0.15094104', 'position': 11}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.02336833', 'position': 12}, {'token': '2', 'token_id': 17, 'type': 'input', 'value': '0.025183896', 'position': 13}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.019457716', 'position': 14}, {'token': ' Belgium', 'token_id': 15664, 'type': 'input', 'value': '0.12963511', 'position': 15}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.01746115', 'position': 16}, {'token': '3', 'token_id': 18, 'type': 'input', 'value': '0.028114133', 'position': 17}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.025315696', 'position': 18}, {'token': ' Bulgaria', 'token_id': 27902, 'type': 'input', 'value': '0.16295704', 'position': 19}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.016801849', 'position': 20}, {'token': '4', 'token_id': 19, 'type': 'input', 'value': '0.04048571', 'position': 21}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.03355836', 'position': 22}, {'token': ' Croatia', 'token_id': 28975, 'type': 'output', 'value': '0', 'position': 23}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 24}, {'token': '5', 'token_id': 20, 'type': 'output', 'value': '0', 'position': 25}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 26}, {'token': ' Denmark', 'token_id': 16490, 'type': 'output', 'value': '0', 'position': 27}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 28}, {'token': '6', 'token_id': 21, 'type': 'output', 'value': '0', 'position': 29}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 30}, {'token': ' Estonia', 'token_id': 30912, 'type': 'output', 'value': '0', 'position': 31}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 32}, {'token': '7', 'token_id': 22, 'type': 'output', 'value': '0', 'position': 33}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 34}, {'token': ' Finland', 'token_id': 17837, 'type': 'output', 'value': '0', 'position': 35}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 36}, {'token': '8', 'token_id': 23, 'type': 'output', 'value': '0', 'position': 37}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 38}, {'token': ' France', 'token_id': 4881, 'type': 'output', 'value': '0', 'position': 39}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 40}, {'token': '9', 'token_id': 24, 'type': 'output', 'value': '0', 'position': 41}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 42}], 'attributions': [[0.04984569549560547, 0.05090375617146492, 0.013019184581935406, 0.011890958994626999, 0.04897882416844368, 0.027450431138277054, 0.015803536400198936, 0.020174112170934677, 0.026422865688800812, 0.035699550062417984, 0.026531100273132324, 0.15094104409217834, 0.02336833067238331, 0.025183895602822304, 0.01945771649479866, 0.12963511049747467, 0.017461150884628296, 0.028114132583141327, 0.025315696373581886, 0.16295704245567322, 0.016801849007606506, 0.04048570990562439, 0.03355836123228073], [0.05159769207239151, 0.06581486016511917, 0.01636352576315403, 0.014876791276037693, 0.04087211564183235, 0.03301149606704712, 0.0303588155657053, 0.038537245243787766, 0.03610890358686447, 0.046847254037857056, 0.030281327664852142, 0.08394518494606018, 0.025624804198741913, 0.03170834854245186, 0.026182018220424652, 0.04757749289274216, 0.022194528952240944, 0.028022898361086845, 0.016048911958932877, 0.0459299199283123, 0.02283228188753128, 0.029318900778889656, 0.022131895646452904, 0.19381271302700043], [0.044737059623003006, 0.058928921818733215, 0.017215099185705185, 0.014092698693275452, 0.038349270820617676, 0.02883792854845524, 0.025112425908446312, 0.03546454384922981, 0.04560326784849167, 0.06670594960451126, 0.031322889029979706, 0.053467944264411926, 0.03134693577885628, 0.05674830824136734, 0.02103975974023342, 0.03218746930360794, 0.02557113766670227, 0.05841219425201416, 0.025113621726632118, 0.040040478110313416, 0.028595976531505585, 0.07237008213996887, 0.025994373485445976, 0.06815606355667114, 0.054585520178079605], [0.04556412622332573, 0.07599051296710968, 0.014213352464139462, 0.011679482646286488, 0.031248819082975388, 0.02763707935810089, 0.022448407486081123, 0.024262141436338425, 0.02798958495259285, 0.04534640535712242, 0.028740929439663887, 0.0698070377111435, 0.02289780043065548, 0.03467099368572235, 0.03158089891076088, 0.0439063161611557, 0.02173238806426525, 0.03625648841261864, 0.030535971745848656, 0.046762626618146896, 0.027217542752623558, 0.05282250791788101, 0.028184473514556885, 0.07271526008844376, 0.03528711199760437, 0.09050179272890091], [0.047879405319690704, 0.04463256150484085, 0.012233714573085308, 0.011262846179306507, 0.04436526820063591, 0.024753017351031303, 0.015054945833981037, 0.020006230100989342, 0.025138789787888527, 0.02865767665207386, 0.021696895360946655, 0.11871129274368286, 0.019099485129117966, 0.020845230668783188, 0.015476241707801819, 0.08560745418071747, 0.01487815286964178, 0.018792390823364258, 0.021685877814888954, 0.09394844621419907, 0.01619810052216053, 0.022164473310112953, 0.015942437574267387, 0.15044087171554565, 0.01816990226507187, 0.038085125386714935, 0.034273140132427216], [0.04914150387048721, 0.058714646846055984, 0.015240165404975414, 0.013058601878583431, 0.039061956107616425, 0.031377002596855164, 0.027125071734189987, 0.032355740666389465, 0.0340917631983757, 0.04219183325767517, 0.02534228004515171, 0.07620307058095932, 0.023327510803937912, 0.027253272011876106, 0.021984469145536423, 0.04963532090187073, 0.021092921495437622, 0.021636130288243294, 0.01587340421974659, 0.042614925652742386, 0.02058415301144123, 0.026377389207482338, 0.012116452679038048, 0.03547227010130882, 0.020630504935979843, 0.029118215665221214, 0.024426154792308807, 0.16395331919193268], [0.040190521627664566, 0.05274410545825958, 0.014852195978164673, 0.010532177984714508, 0.030350839719176292, 0.023374143987894058, 0.02323976345360279, 0.03394238278269768, 0.04369436949491501, 0.051846086978912354, 0.027147604152560234, 0.044575102627277374, 0.02902904711663723, 0.039711739867925644, 0.017231546342372894, 0.029958652332425117, 0.02527453564107418, 0.0394170880317688, 0.018741989508271217, 0.030757945030927658, 0.02224419079720974, 0.059927746653556824, 0.01845034770667553, 0.03755088150501251, 0.028074029833078384, 0.08116057515144348, 0.027408063411712646, 0.05935509502887726, 0.03921716287732124], [0.04654404893517494, 0.07041539996862411, 0.012482551857829094, 0.011396734975278378, 0.029890719801187515, 0.02519671805202961, 0.019855573773384094, 0.022479813545942307, 0.027129460126161575, 0.03981876000761986, 0.025661315768957138, 0.06043665483593941, 0.01913442462682724, 0.0263168066740036, 0.026269307360053062, 0.041864145547151566, 0.02010073885321617, 0.026470128446817398, 0.0211385115981102, 0.039400551468133926, 0.01851540431380272, 0.025034068152308464, 0.02831311896443367, 0.03409232199192047, 0.02947641722857952, 0.044275641441345215, 0.026202337816357613, 0.05921481177210808, 0.03343457356095314, 0.08943895250558853], [0.0456584133207798, 0.04319539666175842, 0.01220129244029522, 0.01075691357254982, 0.041175831109285355, 0.02427147887647152, 0.014837352558970451, 0.01824488304555416, 0.022507231682538986, 0.0271108690649271, 0.018962139263749123, 0.11193634569644928, 0.01703573949635029, 0.018362438306212425, 0.012150231748819351, 0.0717754140496254, 0.014612052589654922, 0.01649329997599125, 0.012361781671643257, 0.0745086669921875, 0.014877984300255775, 0.017327813431620598, 0.010555027052760124, 0.07505199313163757, 0.012122422456741333, 0.016550330445170403, 0.016004543751478195, 0.12188463658094406, 0.014693467877805233, 0.03749288618564606, 0.03528105095028877], [0.040892522782087326, 0.03878510743379593, 0.01324292179197073, 0.009177335537970066, 0.02774147130548954, 0.02021709457039833, 0.021582093089818954, 0.033820003271102905, 0.030718864873051643, 0.032363295555114746, 0.0202050618827343, 0.052551113069057465, 0.02850029617547989, 0.025719385594129562, 0.013953443616628647, 0.029272856190800667, 0.021574538201093674, 0.019161924719810486, 0.009781702421605587, 0.04335404932498932, 0.020072175189852715, 0.016982702538371086, 0.00925701018422842, 0.039546262472867966, 0.020929811522364616, 0.014713520184159279, 0.00891731958836317, 0.036588914692401886, 0.0289558544754982, 0.02712731994688511, 0.02093120478093624, 0.22336286306381226], [0.03582195192575455, 0.04115242883563042, 0.012044479139149189, 0.008552996441721916, 0.024631470441818237, 0.01957428827881813, 0.017315983772277832, 0.02864876575767994, 0.040863726288080215, 0.04255764186382294, 0.019712332636117935, 0.03563801571726799, 0.022602079436182976, 0.03121521882712841, 0.01525796391069889, 0.02429679036140442, 0.0224674753844738, 0.03261697292327881, 0.015243209898471832, 0.029904287308454514, 0.020624615252017975, 0.04320544749498367, 0.01737932115793228, 0.030291428789496422, 0.02794494666159153, 0.06815430521965027, 0.014030594378709793, 0.027092907577753067, 0.028561394661664963, 0.08003107458353043, 0.021792858839035034, 0.06080961972475052, 0.03996335342526436], [0.04448612034320831, 0.0642140582203865, 0.011944766156375408, 0.011876829899847507, 0.02682151086628437, 0.022259611636400223, 0.019542977213859558, 0.02169598825275898, 0.025913508608937263, 0.03342360630631447, 0.02317955158650875, 0.0568205825984478, 0.017061183229088783, 0.022135017439723015, 0.02340884320437908, 0.03833380341529846, 0.016120929270982742, 0.019603915512561798, 0.018123531714081764, 0.03574765846133232, 0.015326881781220436, 0.021546192467212677, 0.018138524144887924, 0.026938749477267265, 0.016619615256786346, 0.02040095254778862, 0.026912128552794456, 0.025800492614507675, 0.028257669880986214, 0.056263577193021774, 0.022490115836262703, 0.0593595877289772, 0.02825912833213806, 0.08097236603498459], [0.04298366606235504, 0.03960374742746353, 0.010734406299889088, 0.009574387222528458, 0.037950508296489716, 0.0223844014108181, 0.013327563181519508, 0.01706058159470558, 0.020998314023017883, 0.022538192570209503, 0.016597798094153404, 0.09993427991867065, 0.01484288927167654, 0.015192458406090736, 0.01105404831469059, 0.05917622148990631, 0.012434937991201878, 0.014373451471328735, 0.012119964696466923, 0.06293977797031403, 0.0127536840736866, 0.018374674022197723, 0.00844087265431881, 0.062427155673503876, 0.011274785734713078, 0.012900017201900482, 0.009872019290924072, 0.07482825219631195, 0.0125228026881814, 0.019737837836146355, 0.016222033649683, 0.10747968405485153, 0.01612960919737816, 0.032402437180280685, 0.028812529519200325], [0.04371986538171768, 0.03942372277379036, 0.014879797585308552, 0.009454012848436832, 0.028494102880358696, 0.02066473476588726, 0.02161099575459957, 0.03259193152189255, 0.029745588079094887, 0.031858839094638824, 0.018766146153211594, 0.05574775114655495, 0.026181232184171677, 0.02561790496110916, 0.013678368180990219, 0.03578735888004303, 0.018848970532417297, 0.01843409426510334, 0.008739509619772434, 0.035623762756586075, 0.017353111878037453, 0.01682649366557598, 0.008178062736988068, 0.03323042765259743, 0.019216621294617653, 0.014452507719397545, 0.007650855928659439, 0.031197436153888702, 0.022690819576382637, 0.01809784211218357, 0.007484751287847757, 0.03537712246179581, 0.024291198700666428, 0.023350510746240616, 0.018684176728129387, 0.1720494031906128], [0.03540690243244171, 0.045539628714323044, 0.012470348738133907, 0.009530636481940746, 0.02489466406404972, 0.020223936066031456, 0.018901178613305092, 0.027300972491502762, 0.041780222207307816, 0.039647895842790604, 0.01789906993508339, 0.03602476790547371, 0.023449139669537544, 0.028002679347991943, 0.014249159023165703, 0.02506502903997898, 0.017947888001799583, 0.026013603433966637, 0.011996050365269184, 0.028653832152485847, 0.017451493069529533, 0.03550845384597778, 0.010990303009748459, 0.02657736837863922, 0.021879838779568672, 0.04423748701810837, 0.010390713810920715, 0.022687695920467377, 0.02104838192462921, 0.04276839271187782, 0.011482208967208862, 0.03505849093198776, 0.025371113792061806, 0.05589830502867699, 0.019565340131521225, 0.054716821759939194, 0.03936995565891266], [0.04437626153230667, 0.06325364112854004, 0.011824119836091995, 0.0116911381483078, 0.026242848485708237, 0.021933265030384064, 0.0195402093231678, 0.021425776183605194, 0.025451501831412315, 0.03330651670694351, 0.020715557038784027, 0.05491561070084572, 0.015387042425572872, 0.02071751281619072, 0.020525092259049416, 0.037394504994153976, 0.012698509730398655, 0.015934929251670837, 0.014545305632054806, 0.0344892218708992, 0.011643235571682453, 0.01569443568587303, 0.014700992964208126, 0.02592422068119049, 0.011812731623649597, 0.015979895368218422, 0.015882091596722603, 0.021320581436157227, 0.0142875537276268, 0.021540002897381783, 0.022975612431764603, 0.031926605850458145, 0.018552152439951897, 0.04930208623409271, 0.02128119394183159, 0.04851604998111725, 0.028825506567955017, 0.0834665596485138], [0.0403720960021019, 0.0355222150683403, 0.00957600399851799, 0.009131336584687233, 0.032514385879039764, 0.01964779756963253, 0.011334282346069813, 0.015336944721639156, 0.018713101744651794, 0.019741857424378395, 0.01627713069319725, 0.08563108742237091, 0.01257987692952156, 0.01377767976373434, 0.01004440151154995, 0.04902767762541771, 0.010359587147831917, 0.012758905999362469, 0.00966776255518198, 0.05174286291003227, 0.010423892177641392, 0.015223609283566475, 0.00759942876175046, 0.05077924579381943, 0.008893057703971863, 0.011547095142304897, 0.0066984412260353565, 0.05126207321882248, 0.011364861391484737, 0.014282476156949997, 0.010964732617139816, 0.08239242434501648, 0.01226058416068554, 0.025275463238358498, 0.01633569970726967, 0.11647315323352814, 0.017649158835411072, 0.022472962737083435, 0.024344630539417267], [0.039644427597522736, 0.04434243589639664, 0.012124788016080856, 0.00982428714632988, 0.032150689512491226, 0.02334301546216011, 0.01944142021238804, 0.02632255107164383, 0.029774194583296776, 0.03349492326378822, 0.020103812217712402, 0.05349431186914444, 0.022542286664247513, 0.02491205558180809, 0.018298791721463203, 0.03510984033346176, 0.015396015718579292, 0.01843508891761303, 0.012865942902863026, 0.031345028430223465, 0.01262460183352232, 0.01686202362179756, 0.010735608637332916, 0.02490989677608013, 0.011885669082403183, 0.014011088758707047, 0.009998307563364506, 0.019255755469202995, 0.015180033631622791, 0.017416683956980705, 0.007682695519179106, 0.02858710289001465, 0.01231721043586731, 0.020733511075377464, 0.009084456600248814, 0.028545713052153587, 0.021001938730478287, 0.028706930577754974, 0.02246040292084217, 0.14503440260887146], [0.036054328083992004, 0.045859672129154205, 0.011890910565853119, 0.009643647819757462, 0.02481902204453945, 0.019838962703943253, 0.019176576286554337, 0.026490923017263412, 0.03971884399652481, 0.03764115646481514, 0.018844861537218094, 0.03454692289233208, 0.021217375993728638, 0.024732720106840134, 0.014026353135704994, 0.023098886013031006, 0.015357316471636295, 0.02281074784696102, 0.011217629536986351, 0.02432829886674881, 0.01447601430118084, 0.02891850471496582, 0.009283018298447132, 0.021820921450853348, 0.017397621646523476, 0.03471113368868828, 0.008193324320018291, 0.0220677200704813, 0.015030083246529102, 0.030184200033545494, 0.008182653225958347, 0.023278336971998215, 0.014671565033495426, 0.03495429456233978, 0.009950640611350536, 0.028087390586733818, 0.024908073246479034, 0.06430774182081223, 0.01876322738826275, 0.05023129656910896, 0.039267100393772125], [0.042847976088523865, 0.060311462730169296, 0.011265233159065247, 0.011852672323584557, 0.025437969714403152, 0.020172782242298126, 0.018759235739707947, 0.01948109269142151, 0.024690546095371246, 0.030227195471525192, 0.020058101043105125, 0.05013445019721985, 0.01509705651551485, 0.018656324595212936, 0.01905263029038906, 0.03759434074163437, 0.011791487224400043, 0.01413016114383936, 0.014570302329957485, 0.03588670864701271, 0.010408779606223106, 0.013579316437244415, 0.012907578609883785, 0.026298196986317635, 0.01031592208892107, 0.013130751438438892, 0.011853545904159546, 0.018716074526309967, 0.01139790378510952, 0.016231413930654526, 0.01407905388623476, 0.02464297227561474, 0.012739025987684727, 0.020224664360284805, 0.019539708271622658, 0.02587432600557804, 0.019721852615475655, 0.05653916671872139, 0.020169856026768684, 0.04070373997092247, 0.023453693836927414, 0.07545484602451324]]},\n",
              "                preset: 'viridis'\n",
              "             })\n",
              "\n",
              "             window.ecco[viz_id].init();\n",
              "             window.ecco[viz_id].selectFirstToken();\n",
              "\n",
              "             }, function (err) {\n",
              "                console.log(err);\n",
              "            })"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4vicS8eRCujY"
      },
      "source": [
        "### Detailed saliency view\r\n",
        "We can see a more detailed view of the saliency values using the detailed view:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9ao3g9RIFa7x",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 357
        },
        "outputId": "e7208416-9b90-4573-fa4f-185fec23e896"
      },
      "source": [
        "output_3.saliency(style=\"detailed\")"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<html lang=\"en\">\n",
              "<script src=\"https://requirejs.org/docs/release/2.3.6/minified/require.js\"></script>\n",
              "<script>\n",
              "    var ecco_url = 'https://storage.googleapis.com/ml-intro/ecco/'\n",
              "    // var ecco_url = 'http://localhost:8000/ecco/'\n",
              "\n",
              "    if (window.ecco === undefined) window.ecco = {}\n",
              "\n",
              "    requirejs.config({\n",
              "        urlArgs: \"bust=\" + (new Date()).getTime(),\n",
              "        nodeRequire: require,\n",
              "        paths: {\n",
              "            d3: \"https://d3js.org/d3.v5.min\",\n",
              "            \"d3-array\": \"https://d3js.org/d3-array.v2.min\",\n",
              "            jquery: \"https://code.jquery.com/jquery-3.5.1.min\",\n",
              "            // oldEcco: ecco_url + 'ecco',\n",
              "            ecco: ecco_url + 'js/0.0.4/ecco-bundle.min',\n",
              "            xregexp: 'https://cdnjs.cloudflare.com/ajax/libs/xregexp/3.2.0/xregexp-all.min'\n",
              "        }\n",
              "    });\n",
              "    requirejs(['d3'],\n",
              "        function (d3) {\n",
              "            d3.select('#css').attr('href', ecco_url + 'html/styles.css')\n",
              "        })\n",
              "\n",
              "    console.log('Ecco initialize.')\n",
              "</script>\n",
              "\n",
              "<head>\n",
              "    <link id='css' rel=\"stylesheet\" type=\"text/css\">\n",
              "</head>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<script>\n",
              "    // console.log('defining basic')\n",
              "    define('basic', ['d3'],\n",
              "        function (d3) {\n",
              "            return {\n",
              "                init: function (viz_id = null) {\n",
              "\n",
              "                    // console.log('basic init')\n",
              "                    if (viz_id == null){\n",
              "                        viz_id = \"viz_\" + Math.round(Math.random() * 10000000)\n",
              "                    }\n",
              "                    const div = d3.select('#basic').attr('id', viz_id),\n",
              "                        div_parent = d3.select('#' + viz_id).node().parentNode\n",
              "\n",
              "                    // Link to CSS file\n",
              "                    d3.select(div_parent).insert('link')\n",
              "                        .attr('rel', 'stylesheet')\n",
              "                        .attr('type', 'text/css')\n",
              "                        .attr('href', ecco_url + 'html/styles.css')\n",
              "\n",
              "                    return viz_id\n",
              "                }\n",
              "            }\n",
              "        }, function (err) {console.log(err);}\n",
              "    )\n",
              "    // console.log('after defining basic')\n",
              "\n",
              "</script>\n",
              "<div id=\"basic\"></div>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/javascript": [
              "\n",
              "             requirejs(['basic', 'ecco'], function(basic, ecco){\n",
              "                const viz_id = basic.init()\n",
              "                window.ecco[viz_id] = ecco.interactiveTokens(viz_id, {'tokens': [{'token': 'The', 'token_id': 464, 'type': 'input', 'value': '0.049845695', 'position': 0}, {'token': ' countries', 'token_id': 2678, 'type': 'input', 'value': '0.050903756', 'position': 1}, {'token': ' of', 'token_id': 286, 'type': 'input', 'value': '0.013019185', 'position': 2}, {'token': ' the', 'token_id': 262, 'type': 'input', 'value': '0.011890959', 'position': 3}, {'token': ' European', 'token_id': 3427, 'type': 'input', 'value': '0.048978824', 'position': 4}, {'token': ' Union', 'token_id': 4479, 'type': 'input', 'value': '0.027450431', 'position': 5}, {'token': ' are', 'token_id': 389, 'type': 'input', 'value': '0.015803536', 'position': 6}, {'token': ':', 'token_id': 25, 'type': 'input', 'value': '0.020174112', 'position': 7}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.026422866', 'position': 8}, {'token': '1', 'token_id': 16, 'type': 'input', 'value': '0.03569955', 'position': 9}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.0265311', 'position': 10}, {'token': ' Austria', 'token_id': 17322, 'type': 'input', 'value': '0.15094104', 'position': 11}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.02336833', 'position': 12}, {'token': '2', 'token_id': 17, 'type': 'input', 'value': '0.025183896', 'position': 13}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.019457716', 'position': 14}, {'token': ' Belgium', 'token_id': 15664, 'type': 'input', 'value': '0.12963511', 'position': 15}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.01746115', 'position': 16}, {'token': '3', 'token_id': 18, 'type': 'input', 'value': '0.028114133', 'position': 17}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.025315696', 'position': 18}, {'token': ' Bulgaria', 'token_id': 27902, 'type': 'input', 'value': '0.16295704', 'position': 19}, {'token': '\\n', 'token_id': 198, 'type': 'input', 'value': '0.016801849', 'position': 20}, {'token': '4', 'token_id': 19, 'type': 'input', 'value': '0.04048571', 'position': 21}, {'token': '.', 'token_id': 13, 'type': 'input', 'value': '0.03355836', 'position': 22}, {'token': ' Croatia', 'token_id': 28975, 'type': 'output', 'value': '0', 'position': 23}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 24}, {'token': '5', 'token_id': 20, 'type': 'output', 'value': '0', 'position': 25}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 26}, {'token': ' Denmark', 'token_id': 16490, 'type': 'output', 'value': '0', 'position': 27}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 28}, {'token': '6', 'token_id': 21, 'type': 'output', 'value': '0', 'position': 29}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 30}, {'token': ' Estonia', 'token_id': 30912, 'type': 'output', 'value': '0', 'position': 31}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 32}, {'token': '7', 'token_id': 22, 'type': 'output', 'value': '0', 'position': 33}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 34}, {'token': ' Finland', 'token_id': 17837, 'type': 'output', 'value': '0', 'position': 35}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 36}, {'token': '8', 'token_id': 23, 'type': 'output', 'value': '0', 'position': 37}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 38}, {'token': ' France', 'token_id': 4881, 'type': 'output', 'value': '0', 'position': 39}, {'token': '\\n', 'token_id': 198, 'type': 'output', 'value': '0', 'position': 40}, {'token': '9', 'token_id': 24, 'type': 'output', 'value': '0', 'position': 41}, {'token': '.', 'token_id': 13, 'type': 'output', 'value': '0', 'position': 42}], 'attributions': [[0.04984569549560547, 0.05090375617146492, 0.013019184581935406, 0.011890958994626999, 0.04897882416844368, 0.027450431138277054, 0.015803536400198936, 0.020174112170934677, 0.026422865688800812, 0.035699550062417984, 0.026531100273132324, 0.15094104409217834, 0.02336833067238331, 0.025183895602822304, 0.01945771649479866, 0.12963511049747467, 0.017461150884628296, 0.028114132583141327, 0.025315696373581886, 0.16295704245567322, 0.016801849007606506, 0.04048570990562439, 0.03355836123228073], [0.05159769207239151, 0.06581486016511917, 0.01636352576315403, 0.014876791276037693, 0.04087211564183235, 0.03301149606704712, 0.0303588155657053, 0.038537245243787766, 0.03610890358686447, 0.046847254037857056, 0.030281327664852142, 0.08394518494606018, 0.025624804198741913, 0.03170834854245186, 0.026182018220424652, 0.04757749289274216, 0.022194528952240944, 0.028022898361086845, 0.016048911958932877, 0.0459299199283123, 0.02283228188753128, 0.029318900778889656, 0.022131895646452904, 0.19381271302700043], [0.044737059623003006, 0.058928921818733215, 0.017215099185705185, 0.014092698693275452, 0.038349270820617676, 0.02883792854845524, 0.025112425908446312, 0.03546454384922981, 0.04560326784849167, 0.06670594960451126, 0.031322889029979706, 0.053467944264411926, 0.03134693577885628, 0.05674830824136734, 0.02103975974023342, 0.03218746930360794, 0.02557113766670227, 0.05841219425201416, 0.025113621726632118, 0.040040478110313416, 0.028595976531505585, 0.07237008213996887, 0.025994373485445976, 0.06815606355667114, 0.054585520178079605], [0.04556412622332573, 0.07599051296710968, 0.014213352464139462, 0.011679482646286488, 0.031248819082975388, 0.02763707935810089, 0.022448407486081123, 0.024262141436338425, 0.02798958495259285, 0.04534640535712242, 0.028740929439663887, 0.0698070377111435, 0.02289780043065548, 0.03467099368572235, 0.03158089891076088, 0.0439063161611557, 0.02173238806426525, 0.03625648841261864, 0.030535971745848656, 0.046762626618146896, 0.027217542752623558, 0.05282250791788101, 0.028184473514556885, 0.07271526008844376, 0.03528711199760437, 0.09050179272890091], [0.047879405319690704, 0.04463256150484085, 0.012233714573085308, 0.011262846179306507, 0.04436526820063591, 0.024753017351031303, 0.015054945833981037, 0.020006230100989342, 0.025138789787888527, 0.02865767665207386, 0.021696895360946655, 0.11871129274368286, 0.019099485129117966, 0.020845230668783188, 0.015476241707801819, 0.08560745418071747, 0.01487815286964178, 0.018792390823364258, 0.021685877814888954, 0.09394844621419907, 0.01619810052216053, 0.022164473310112953, 0.015942437574267387, 0.15044087171554565, 0.01816990226507187, 0.038085125386714935, 0.034273140132427216], [0.04914150387048721, 0.058714646846055984, 0.015240165404975414, 0.013058601878583431, 0.039061956107616425, 0.031377002596855164, 0.027125071734189987, 0.032355740666389465, 0.0340917631983757, 0.04219183325767517, 0.02534228004515171, 0.07620307058095932, 0.023327510803937912, 0.027253272011876106, 0.021984469145536423, 0.04963532090187073, 0.021092921495437622, 0.021636130288243294, 0.01587340421974659, 0.042614925652742386, 0.02058415301144123, 0.026377389207482338, 0.012116452679038048, 0.03547227010130882, 0.020630504935979843, 0.029118215665221214, 0.024426154792308807, 0.16395331919193268], [0.040190521627664566, 0.05274410545825958, 0.014852195978164673, 0.010532177984714508, 0.030350839719176292, 0.023374143987894058, 0.02323976345360279, 0.03394238278269768, 0.04369436949491501, 0.051846086978912354, 0.027147604152560234, 0.044575102627277374, 0.02902904711663723, 0.039711739867925644, 0.017231546342372894, 0.029958652332425117, 0.02527453564107418, 0.0394170880317688, 0.018741989508271217, 0.030757945030927658, 0.02224419079720974, 0.059927746653556824, 0.01845034770667553, 0.03755088150501251, 0.028074029833078384, 0.08116057515144348, 0.027408063411712646, 0.05935509502887726, 0.03921716287732124], [0.04654404893517494, 0.07041539996862411, 0.012482551857829094, 0.011396734975278378, 0.029890719801187515, 0.02519671805202961, 0.019855573773384094, 0.022479813545942307, 0.027129460126161575, 0.03981876000761986, 0.025661315768957138, 0.06043665483593941, 0.01913442462682724, 0.0263168066740036, 0.026269307360053062, 0.041864145547151566, 0.02010073885321617, 0.026470128446817398, 0.0211385115981102, 0.039400551468133926, 0.01851540431380272, 0.025034068152308464, 0.02831311896443367, 0.03409232199192047, 0.02947641722857952, 0.044275641441345215, 0.026202337816357613, 0.05921481177210808, 0.03343457356095314, 0.08943895250558853], [0.0456584133207798, 0.04319539666175842, 0.01220129244029522, 0.01075691357254982, 0.041175831109285355, 0.02427147887647152, 0.014837352558970451, 0.01824488304555416, 0.022507231682538986, 0.0271108690649271, 0.018962139263749123, 0.11193634569644928, 0.01703573949635029, 0.018362438306212425, 0.012150231748819351, 0.0717754140496254, 0.014612052589654922, 0.01649329997599125, 0.012361781671643257, 0.0745086669921875, 0.014877984300255775, 0.017327813431620598, 0.010555027052760124, 0.07505199313163757, 0.012122422456741333, 0.016550330445170403, 0.016004543751478195, 0.12188463658094406, 0.014693467877805233, 0.03749288618564606, 0.03528105095028877], [0.040892522782087326, 0.03878510743379593, 0.01324292179197073, 0.009177335537970066, 0.02774147130548954, 0.02021709457039833, 0.021582093089818954, 0.033820003271102905, 0.030718864873051643, 0.032363295555114746, 0.0202050618827343, 0.052551113069057465, 0.02850029617547989, 0.025719385594129562, 0.013953443616628647, 0.029272856190800667, 0.021574538201093674, 0.019161924719810486, 0.009781702421605587, 0.04335404932498932, 0.020072175189852715, 0.016982702538371086, 0.00925701018422842, 0.039546262472867966, 0.020929811522364616, 0.014713520184159279, 0.00891731958836317, 0.036588914692401886, 0.0289558544754982, 0.02712731994688511, 0.02093120478093624, 0.22336286306381226], [0.03582195192575455, 0.04115242883563042, 0.012044479139149189, 0.008552996441721916, 0.024631470441818237, 0.01957428827881813, 0.017315983772277832, 0.02864876575767994, 0.040863726288080215, 0.04255764186382294, 0.019712332636117935, 0.03563801571726799, 0.022602079436182976, 0.03121521882712841, 0.01525796391069889, 0.02429679036140442, 0.0224674753844738, 0.03261697292327881, 0.015243209898471832, 0.029904287308454514, 0.020624615252017975, 0.04320544749498367, 0.01737932115793228, 0.030291428789496422, 0.02794494666159153, 0.06815430521965027, 0.014030594378709793, 0.027092907577753067, 0.028561394661664963, 0.08003107458353043, 0.021792858839035034, 0.06080961972475052, 0.03996335342526436], [0.04448612034320831, 0.0642140582203865, 0.011944766156375408, 0.011876829899847507, 0.02682151086628437, 0.022259611636400223, 0.019542977213859558, 0.02169598825275898, 0.025913508608937263, 0.03342360630631447, 0.02317955158650875, 0.0568205825984478, 0.017061183229088783, 0.022135017439723015, 0.02340884320437908, 0.03833380341529846, 0.016120929270982742, 0.019603915512561798, 0.018123531714081764, 0.03574765846133232, 0.015326881781220436, 0.021546192467212677, 0.018138524144887924, 0.026938749477267265, 0.016619615256786346, 0.02040095254778862, 0.026912128552794456, 0.025800492614507675, 0.028257669880986214, 0.056263577193021774, 0.022490115836262703, 0.0593595877289772, 0.02825912833213806, 0.08097236603498459], [0.04298366606235504, 0.03960374742746353, 0.010734406299889088, 0.009574387222528458, 0.037950508296489716, 0.0223844014108181, 0.013327563181519508, 0.01706058159470558, 0.020998314023017883, 0.022538192570209503, 0.016597798094153404, 0.09993427991867065, 0.01484288927167654, 0.015192458406090736, 0.01105404831469059, 0.05917622148990631, 0.012434937991201878, 0.014373451471328735, 0.012119964696466923, 0.06293977797031403, 0.0127536840736866, 0.018374674022197723, 0.00844087265431881, 0.062427155673503876, 0.011274785734713078, 0.012900017201900482, 0.009872019290924072, 0.07482825219631195, 0.0125228026881814, 0.019737837836146355, 0.016222033649683, 0.10747968405485153, 0.01612960919737816, 0.032402437180280685, 0.028812529519200325], [0.04371986538171768, 0.03942372277379036, 0.014879797585308552, 0.009454012848436832, 0.028494102880358696, 0.02066473476588726, 0.02161099575459957, 0.03259193152189255, 0.029745588079094887, 0.031858839094638824, 0.018766146153211594, 0.05574775114655495, 0.026181232184171677, 0.02561790496110916, 0.013678368180990219, 0.03578735888004303, 0.018848970532417297, 0.01843409426510334, 0.008739509619772434, 0.035623762756586075, 0.017353111878037453, 0.01682649366557598, 0.008178062736988068, 0.03323042765259743, 0.019216621294617653, 0.014452507719397545, 0.007650855928659439, 0.031197436153888702, 0.022690819576382637, 0.01809784211218357, 0.007484751287847757, 0.03537712246179581, 0.024291198700666428, 0.023350510746240616, 0.018684176728129387, 0.1720494031906128], [0.03540690243244171, 0.045539628714323044, 0.012470348738133907, 0.009530636481940746, 0.02489466406404972, 0.020223936066031456, 0.018901178613305092, 0.027300972491502762, 0.041780222207307816, 0.039647895842790604, 0.01789906993508339, 0.03602476790547371, 0.023449139669537544, 0.028002679347991943, 0.014249159023165703, 0.02506502903997898, 0.017947888001799583, 0.026013603433966637, 0.011996050365269184, 0.028653832152485847, 0.017451493069529533, 0.03550845384597778, 0.010990303009748459, 0.02657736837863922, 0.021879838779568672, 0.04423748701810837, 0.010390713810920715, 0.022687695920467377, 0.02104838192462921, 0.04276839271187782, 0.011482208967208862, 0.03505849093198776, 0.025371113792061806, 0.05589830502867699, 0.019565340131521225, 0.054716821759939194, 0.03936995565891266], [0.04437626153230667, 0.06325364112854004, 0.011824119836091995, 0.0116911381483078, 0.026242848485708237, 0.021933265030384064, 0.0195402093231678, 0.021425776183605194, 0.025451501831412315, 0.03330651670694351, 0.020715557038784027, 0.05491561070084572, 0.015387042425572872, 0.02071751281619072, 0.020525092259049416, 0.037394504994153976, 0.012698509730398655, 0.015934929251670837, 0.014545305632054806, 0.0344892218708992, 0.011643235571682453, 0.01569443568587303, 0.014700992964208126, 0.02592422068119049, 0.011812731623649597, 0.015979895368218422, 0.015882091596722603, 0.021320581436157227, 0.0142875537276268, 0.021540002897381783, 0.022975612431764603, 0.031926605850458145, 0.018552152439951897, 0.04930208623409271, 0.02128119394183159, 0.04851604998111725, 0.028825506567955017, 0.0834665596485138], [0.0403720960021019, 0.0355222150683403, 0.00957600399851799, 0.009131336584687233, 0.032514385879039764, 0.01964779756963253, 0.011334282346069813, 0.015336944721639156, 0.018713101744651794, 0.019741857424378395, 0.01627713069319725, 0.08563108742237091, 0.01257987692952156, 0.01377767976373434, 0.01004440151154995, 0.04902767762541771, 0.010359587147831917, 0.012758905999362469, 0.00966776255518198, 0.05174286291003227, 0.010423892177641392, 0.015223609283566475, 0.00759942876175046, 0.05077924579381943, 0.008893057703971863, 0.011547095142304897, 0.0066984412260353565, 0.05126207321882248, 0.011364861391484737, 0.014282476156949997, 0.010964732617139816, 0.08239242434501648, 0.01226058416068554, 0.025275463238358498, 0.01633569970726967, 0.11647315323352814, 0.017649158835411072, 0.022472962737083435, 0.024344630539417267], [0.039644427597522736, 0.04434243589639664, 0.012124788016080856, 0.00982428714632988, 0.032150689512491226, 0.02334301546216011, 0.01944142021238804, 0.02632255107164383, 0.029774194583296776, 0.03349492326378822, 0.020103812217712402, 0.05349431186914444, 0.022542286664247513, 0.02491205558180809, 0.018298791721463203, 0.03510984033346176, 0.015396015718579292, 0.01843508891761303, 0.012865942902863026, 0.031345028430223465, 0.01262460183352232, 0.01686202362179756, 0.010735608637332916, 0.02490989677608013, 0.011885669082403183, 0.014011088758707047, 0.009998307563364506, 0.019255755469202995, 0.015180033631622791, 0.017416683956980705, 0.007682695519179106, 0.02858710289001465, 0.01231721043586731, 0.020733511075377464, 0.009084456600248814, 0.028545713052153587, 0.021001938730478287, 0.028706930577754974, 0.02246040292084217, 0.14503440260887146], [0.036054328083992004, 0.045859672129154205, 0.011890910565853119, 0.009643647819757462, 0.02481902204453945, 0.019838962703943253, 0.019176576286554337, 0.026490923017263412, 0.03971884399652481, 0.03764115646481514, 0.018844861537218094, 0.03454692289233208, 0.021217375993728638, 0.024732720106840134, 0.014026353135704994, 0.023098886013031006, 0.015357316471636295, 0.02281074784696102, 0.011217629536986351, 0.02432829886674881, 0.01447601430118084, 0.02891850471496582, 0.009283018298447132, 0.021820921450853348, 0.017397621646523476, 0.03471113368868828, 0.008193324320018291, 0.0220677200704813, 0.015030083246529102, 0.030184200033545494, 0.008182653225958347, 0.023278336971998215, 0.014671565033495426, 0.03495429456233978, 0.009950640611350536, 0.028087390586733818, 0.024908073246479034, 0.06430774182081223, 0.01876322738826275, 0.05023129656910896, 0.039267100393772125], [0.042847976088523865, 0.060311462730169296, 0.011265233159065247, 0.011852672323584557, 0.025437969714403152, 0.020172782242298126, 0.018759235739707947, 0.01948109269142151, 0.024690546095371246, 0.030227195471525192, 0.020058101043105125, 0.05013445019721985, 0.01509705651551485, 0.018656324595212936, 0.01905263029038906, 0.03759434074163437, 0.011791487224400043, 0.01413016114383936, 0.014570302329957485, 0.03588670864701271, 0.010408779606223106, 0.013579316437244415, 0.012907578609883785, 0.026298196986317635, 0.01031592208892107, 0.013130751438438892, 0.011853545904159546, 0.018716074526309967, 0.01139790378510952, 0.016231413930654526, 0.01407905388623476, 0.02464297227561474, 0.012739025987684727, 0.020224664360284805, 0.019539708271622658, 0.02587432600557804, 0.019721852615475655, 0.05653916671872139, 0.020169856026768684, 0.04070373997092247, 0.023453693836927414, 0.07545484602451324]]})\n",
              "\n",
              "             }, function (err) {\n",
              "                console.log(err);\n",
              "            })"
            ],
            "text/plain": [
              "<IPython.core.display.Javascript object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    }
  ]
}